package com.pi.pro.xcmg.am.was.edi.infor.dto.req;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * WMS->WAS:出库任务
 */
@Getter
@Setter
public class TaskOrderDto implements Serializable{

    //外部单号	SapCode	VARCHAR2(30)	否	这是本次已同意增加的查询字段
    @JsonProperty("SapCode")
    private String sapCode;

    //订单号		VARCHAR2(30)
    @JsonProperty("OrderCode")
    private String orderCode;

    //订单WBS	OWBS	varchar(50)
    @JsonProperty("OWBS")
    private String owbs;

    //分厂	Factory	varchar(50)
    @JsonProperty("Factory")
    private String factory;

    //产线	LineCode	varchar(50)
    @JsonProperty("LineCode")
    private String lineCode;

    //货主	Owner	varchar(50)
    //@JsonProperty("Owner")
    @JsonProperty("Ower")
    private String owner;

    // 配盘点	Stocktaking	varchar(50)
    @JsonProperty("Stocktaking")
    private String stocktaking;

    // 出库单号	ErpCode	NVARCHAR2(20)	否	WMS出库单号
    @JsonProperty("ErpCode")
    private String erpCode;

    // 请求时间	ErpTime	DATETIME	是	请求时间, 2024-02-26
    @JsonProperty("ErpTime")
    private String erpTime;

    // 供应商	Supplier	NVARCHAR2(50)	是	wms批属性lot03
    @JsonProperty("Supplier")
    private String supplier;

    //行号	RowNo	Int	是	SO行号
    @JsonProperty("RowNo")
    private Integer rowNo;

    //任务号	TaskCode	NVARCHAR2(20)	是	出库任务时：WMS拣货明细号，搬运业务时WCS任务号
    @JsonProperty("TaskCode")
    private String taskCode;

    //品号	MCode	NVARCHAR2(20)	是	货品编码
    @JsonProperty("MCode")
    private String mCode;

    @JsonProperty("GoodName")
    private String goodName;

    //物料WBS	WBSNo	NVARCHAR2(20)	是	wms批属性lot01
    @JsonProperty("WBSNo")
    private String wbsno;

    @JsonProperty("BatchNo")
    private String batchNo;

    //工位	Station	NVARCHAR2(20)		可能按工位查询：出库单明细行上的工位
    @JsonProperty("Station")
    private String station;

    //库存地	StkLocation	NVARCHAR2(20)	是	wms批属性lot02
    @JsonProperty("StkLocation")
    private String stkLocation;

    //出库数量	Quantity	NUMERIC(13,3)	是	拣货明细中的数量
    @JsonProperty("Quantity")
    private BigDecimal quantity;

    @JsonProperty("Uom")
    private String uom;

    //源库位	FromLoc	NVARCHAR2(10)	是	库存所在的库位
    @JsonProperty("FromLoc")
    private String fromLoc;

    //目标库位	ToLoc	NVARCHAR2(10)	Y	出库单任务传PickTo,移位单任务传移位单目标库位
    @JsonProperty("ToLoc")
    private String toLoc;

    //类型	type	NVARCHAR2(10)	Y	下架：out,移位：move
    @JsonProperty("Type")
    private String type;





    public String toString() {
        StringBuffer buf = new StringBuffer();
        buf.append("{");
        //
        buf.append("SapCode:");
        if (this.sapCode != null) {
            buf.append(this.sapCode);
        } else {
            buf.append("");
        }
        buf.append(",");
        //
        buf.append("OrderCode:");
        if (this.orderCode != null) {
            buf.append(this.orderCode);
        } else {
            buf.append("");
        }
        buf.append(",");
        //
        buf.append("OWBS:");
        if (this.owbs != null) {
            buf.append(this.owbs);
        } else {
            buf.append("");
        }
        buf.append(",");
        //
        buf.append("Factory:");
        if (this.factory != null) {
            buf.append(this.factory);
        } else {
            buf.append("");
        }
        buf.append(",");
        //
        buf.append("LineCode:");
        if (this.lineCode != null) {
            buf.append(this.lineCode);
        } else {
            buf.append("");
        }
        buf.append(",");
        //
        buf.append("Owner:");
        if (this.owner != null) {
            buf.append(this.owner);
        } else {
            buf.append("");
        }
        buf.append(",");
        //
        buf.append("Stocktaking:");
        if (this.stocktaking != null) {
            buf.append(this.stocktaking);
        } else {
            buf.append("");
        }
        buf.append(",");
        //
        buf.append("ErpCode:");
        if (this.erpCode != null) {
            buf.append(this.erpCode);
        } else {
            buf.append("");
        }
        buf.append(",");
        //
        buf.append("ErpTime:");
        if (this.erpTime != null) {
            buf.append(this.erpTime);
        } else {
            buf.append("");
        }
        buf.append(",");
        //
        buf.append("Supplier:");
        if (this.supplier != null) {
            buf.append(this.supplier);
        } else {
            buf.append("");
        }
        buf.append(",");
        //
        buf.append("RowNo:");
        if (this.rowNo != null) {
            buf.append(this.rowNo);
        } else {
            buf.append("");
        }
        buf.append(",");
        //
        buf.append("TaskCode:");
        if (this.taskCode != null) {
            buf.append(this.taskCode);
        } else {
            buf.append("");
        }
        buf.append(",");
        //
        buf.append("MCode:");
        if (this.mCode != null) {
            buf.append(this.mCode);
        } else {
            buf.append("");
        }
        buf.append(",");
        //
        buf.append("GoodName:");
        if (this.goodName != null) {
            buf.append(this.goodName);
        } else {
            buf.append("");
        }
        buf.append(",");
        //
        buf.append("WBSNo:");
        if (this.wbsno != null) {
            buf.append(this.wbsno);
        } else {
            buf.append("");
        }
        buf.append(",");
        //
        buf.append("BatchNo:");
        if (this.batchNo != null) {
            buf.append(this.batchNo);
        } else {
            buf.append("");
        }
        buf.append(",");
        //
        buf.append("Station:");
        if (this.station != null) {
            buf.append(this.station);
        } else {
            buf.append("");
        }
        buf.append(",");
        //
        buf.append("StkLocation:");
        if (this.stkLocation != null) {
            buf.append(this.stkLocation);
        } else {
            buf.append("");
        }
        buf.append(",");
        //
        buf.append("Quantity:");
        if (this.quantity != null) {
            buf.append(this.quantity.stripTrailingZeros().toPlainString());
        } else {
            buf.append("");
        }
        buf.append(",");
        //
        buf.append("Uom:");
        if (this.uom != null) {
            buf.append(this.uom);
        } else {
            buf.append("");
        }
        buf.append(",");
        //
        buf.append("FromLoc:");
        if (this.fromLoc != null) {
            buf.append(this.fromLoc);
        } else {
            buf.append("");
        }
        buf.append(",");
        //
        buf.append("ToLoc:");
        if (this.toLoc != null) {
            buf.append(this.toLoc);
        } else {
            buf.append("");
        }
        buf.append(",");

        //
        buf.append("Type:");
        if (this.type != null) {
            buf.append(this.type);
        } else {
            buf.append("");
        }
        buf.append("");

        buf.append("}");
        return buf.toString();
    }
}
